import storage from "../../utils/storage";
export default {
  inserted(el, binding) {
    // 获取用户使用自定义指令绑定的内容
    const { value } = binding;
    // 获取用户所有的权限
    const permissions = JSON.parse(
      storage.get("PAGEDATA") || JSON.stringify({ userAuth: [] }),
    )?.userAuth;
    const roleType = storage.get("USETYPE");
    // 超级管理员为2 跳过权限控制
    if (roleType && !["1", "2"].includes(roleType)) {
      // 判断用户使用自定义指令，是否使用正确了
      if (value && value instanceof Array && value.length > 0) {
        // 判断传递进来的按钮权限，用户是否拥有
        const hasPermission = permissions.some((per) => {
          return value.includes(per);
        });
        if (!hasPermission) {
          el.parentNode.removeChild(el);
          // el.style.cursor = "not-allowed"
          // el.style.filter = "grayscale(100%)"
          // el.title = "权限不足"
          // el.addEventListener(
          //   "click",
          //   e => {
          //     e.preventDefault()
          //     e.stopPropagation()
          //     return false
          //   },
          //   {
          //     capture: true,
          //   }
          // )
        }
      } else {
        throw new Error("按钮权限指令示例:v-auth=['add']");
      }
    }
  },
};
